package com.class05;

/**
 * 测试运算符的使用：赋值运算符
 * 1.= += -= *= /= %=
 * 2.说明
 * 1）当“=”两侧数据类型不一致时，可以使用自动类型转换或使用强制类型转换原则进行处理
 * 2）支持连续赋值
 * 3）+= -= *= /= %= 操作，不会改变变量的本身的数据类型
 */

public class SetValueTest8 {
    public static void main(String[] args) {
        int i = 5;
        long l = 10;//自动类型提升
        byte b = (byte) i;//强制类型转换
//        操作方式1：
        int a1 = 10;
        int b1 = 10;
//        操作方式2：连续赋值
        int a2;
        int b2;
//        或合并：int a2,b2;
        a2 = b2 = 10;
        System.out.println(a2 + b2);
        int a22, b22;
        a22 = b22 = 10;


//        操作方式3：
//        int a3 = 10;
//        int b3 = 20;
        int a3 = 10, b3 = 20;


//        说明 += 的使用
        int m1 = 10;
        m1 += 10; //类似于m1 = m1 + 10;
        System.out.println("m1 = " + m1);

        byte by1 = 10;
        by1 += 5;//by1 =  by1 + 5;操作会编译报错。应该写为：by1 =  (byte)by1 + 5;
        //alt + enter
        by1 = (byte) (by1 + 5);
        System.out.println(by1);

//       练习：如何实现变量值增加2

//        方式1：
        int n1 = 10;
        n1 = n1 + 2;
//        方式2：推荐
        int n2 = 10;
        n2 += 2;
        //练习2：如何实现变量值增加1.
//        方式1：
        int i1 = 10;
        i1 = i1 + 1;
//        方式2：
        int i2 = 10;
        i2 += 1;
        //方式3：推荐
        int i3 = 10;
        i3++;



        int s1 = 10;
//        方式1
        s1 = s1 * 10;
//        方式2
        s1 *= 10;

        System.out.println(s1);

        int s2 = 100;
        s2 /= 10;
        s2 = s2 / 10;




    }
}
